package com.lagou.com.lagou.homework.Modules4.item1;

/**
 * 1. 编程题
 *
 *   基于学生信息管理系统增加以下两个功能：
 *
 *             a.自定义学号异常类和年龄异常类，并在该成员变量不合理时产生异常对象并抛出。
 *
 *             b.当系统退出时将 List 集合中所有学生信息写入到文件中，当系统启动时读取文件中所有学生信息到 List 集合中。
 */

import com.lagou.com.lagou.mode3.mode3.task4.Person;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Scanner;

public class MainRunFile {

    public static void check(int ia, Collection co/*, int i ,String s , int j*/){
        //准备一个集合
        //Collection c1 = new ArrayList();//接口类型指向实现类，多态
        //System.out.println(c1);//空
        Scanner sc = new Scanner(System.in);
//        System.out.println("请选择你需要操作的选项(1, 2, 3)");
//        int ia = sc.nextInt();
        //int ia = 1;
        try {
            switch (ia){
                case 1:
                    System.out.println("请输入需要查找学生的学号");
                    int i = sc.nextInt();
                    System.out.println("请输入需要查找学生的名字");
                    String s = sc.next();
                    System.out.println("请输入需要查找学生的年龄");
                    int j = sc.nextInt();
                    boolean cs = co.contains(new Student(i,s,j));//需要在Student方法里重写equals方法
                    if (cs){
                        System.out.println("学生存在");
                    }else{
                        System.out.println("学生不存在");
                    }
                    //System.out.println("选择了查找");
                    break;
                case 2:
                    System.out.println("请输入需要添加学生的学号");
                    i = sc.nextInt();
                    System.out.println("请输入需要添加学生的名字");
                    s = sc.next();
                    System.out.println("请输入需要添加学生的年龄");
                    j = sc.nextInt();
                    boolean b3 = co.add(new Student(i,s,j));
                    //System.out.println(c1);
                    break;
                case 3:
                    System.out.println("请输入需要删除学生的学号");
                    i = sc.nextInt();
                    System.out.println("请输入需要删除学生的名字");
                    s = sc.next();
                    System.out.println("请输入需要删除学生的年龄");
                    j = sc.nextInt();
                    b3 = co.remove(new Student(i,s,j));
                    if (b3){
                        System.out.println("删除成功");
                    }else{
                        System.out.println("删除失败");
                    }
                    break;
                case 4:
                    System.out.println(co);
                    break;
                default:
                    System.out.println("null");
                    //return;
            }
        } catch (StudentIdException | StudentAgeException e) {
            e.printStackTrace();
        }
    }



    public static void main(String[] args) {

        //准备一个集合
        Collection c1 = new ArrayList();//接口类型指向实现类，多态
        //创建引用对象
        ReadWriteFile rwt = new ReadWriteFile();
       /* //写入空集合，
        ReadWriteFile.write(c1);*/
        //读文件中已有数据，d:a.txt
        rwt.read(c1);

        Scanner sc = new Scanner(System.in);
        //boar.show();
        while (true){
            boar.show();
            System.out.println("请选择你需要操作的选项(1, 2, 3, 4, 5)");
            int ia = sc.nextInt();
            if (ia == 5){
                System.out.println("感谢使用！");
                //退出将list写入文件
                try {
                    ReadWriteFile.write(c1);
                } catch (StudentAgeException e) {
                    e.printStackTrace();
                } catch (StudentIdException e) {
                    e.printStackTrace();
                }

                return;
            }
            check(ia,c1);
        }

        //
    }
}
